#include <iostream>
#include <stack>

using namespace std;

const int N = 1e5 + 10;

int n;
int a[N], b[N];

int main()
{
    int Q; cin >> Q;
    while(Q--)
    {
        cin >> n;
        for(int i = 1; i <= n; i++) cin >> a[i];
        for(int i = 1; i <= n; i++) cin >> b[i];

        stack<int> st;
        int j = 1;
        for(int i = 1; i <= n; i++) // 让元素依次进栈
        {
            st.push(a[i]);

            while(j <= n && st.size() && st.top() == b[j])
            {
                // 出栈
                st.pop();
                j++;
            }
        }
        if(st.size()) cout << "No" << endl;
        else cout << "Yes" << endl;
    }

    return 0;
}